import * as vscode from "vscode";
import * as command from "@ap/command";
import * as events from "@ap/events";
import * as init from "@ap/init";
import { createHttpServer, stopHttpServer } from "./tools/http";

export let $context: vscode.ExtensionContext;
/**
 * 扩展激活函数。
 * 当扩展被激活时，VS Code 会调用此函数。激活上下文包含了扩展运行时的环境信息。
 * @param context 扩展的激活上下文，提供了访问扩展生命周期钩子和存储数据的方法。
 */
export async function activate(context: vscode.ExtensionContext) {
  $context = context;
  command.registerAllCommands(context);
  command.executeAllCommands();
  command.registerAllActions(context);
  events.onAllEvents(context);
  init.init(context);
  createHttpServer();
}

/**
 * 扩展停用函数。
 * 当扩展被停用时，VS Code 会调用此函数。此函数通常用于清理资源。
 */
export function deactivate() {
  vscode.commands.executeCommand(command.CommandId.file_stopHMRAll);
  stopHttpServer();
}
